import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        int[] arr={1,0,2,3,0,4,5,0};
        int n = arr.length;
        int cur = 0;
        int dest = -1;

        while( dest< n){
            if(arr[cur]!=0){
                dest++;
                arr[dest]=arr[cur];
            }else {
                dest++;
                arr[dest]=arr[cur];
                dest++;
                arr[dest]=arr[cur];
            }
            if(dest<n){
                cur++;
            }
        }

        if(dest==n){
            dest--;
            arr[dest]=arr[cur];
            cur--;
        }
        while(dest>=0){
            if(arr[cur]==0){
                dest--;
                arr[dest]=arr[cur];
                dest--;
                arr[dest]=arr[cur];
                cur--;
            }else{
                dest--;
                arr[dest]=arr[cur];
                cur--;
            }
        }


    }
    public static void main1(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr={1,0,2,3,0,4,5,0};

        int n = arr.length;
        int cur = 0;
        int dest = -1;
        //找cur的最后需要的位置
        while(dest<n){
            if(arr[cur]==0){
                dest+=2;
            }else {
                dest+=1;
            }
            cur++;
        }

        System.out.println("找cur最终位置，训话结束时，dest："+dest+"cur:"+cur);

        cur--;

        //处理特殊边界，把dest、cur放到可用位置——直接可以进入循环复写
        if(dest==n+1){
            cur--;
            dest-=2;
            //此时，可以直接进入复写逻辑，dest指向的位置可以直接复写，cur的位置可以直接判断
        }else{
            dest--;
            if(arr[cur]==0){
                arr[dest]=0;
                dest--;
                cur--;
            }else{
                cur--;
            }
        }

        while(dest>=0){
            if(arr[cur]==0){
                arr[dest]=arr[cur];
                dest--;
                arr[dest]=arr[cur];
                dest--;
                cur--;
            }else{
                arr[dest]=arr[cur];
                dest--;
                cur--;
            }
        }

        int i = 0;
        while (i<n){
            System.out.println(arr[i]);
            i++;
        }






    }
}
